package com.base.po.wx;

import com.base.po.wx.WXPayConfig;
import java.io.*;

public class MyConfig extends WXPayConfig {

	// 支付成功后的回调函数
	private String appid; // appid
	private String mchid; // 商户id
	private String key; // 商户密钥

	public MyConfig() {
		super();
	}

	public MyConfig(String appid, String mchid, String key) {
		super();
		this.appid = appid;
		this.mchid = mchid;
		this.key = key;
	}

//	private byte[] certData;

//	// 证书 支付不需要
//	public MyConfig() throws Exception {
//		String certPath = "/path/to/apiclient_cert.p12";
//		File file = new File(certPath);
//		InputStream certStream = new FileInputStream(file);
//		this.certData = new byte[(int) file.length()];
//		certStream.read(this.certData);
//		certStream.close();
//	}

	/**
	 * 获取 App ID
	 *
	 * @return App ID
	 */
	@Override
	String getAppID() {
		// TODO Auto-generated method stub
		return appid;
	}

	/**
	 * 获取 Mch ID
	 *
	 * @return Mch ID
	 */
	@Override
	String getMchID() {
		// TODO Auto-generated method stub
		return mchid;
	}

	/**
	 * 获取 API 密钥
	 *
	 * @return API密钥
	 */
	@Override
	String getKey() {
		// TODO Auto-generated method stub
		return key;
	}

//	/**
//	 * 获取商户证书内容
//	 *
//	 * @return 商户证书内容
//	 */
//	@Override
//	public InputStream getCertStream() {
//		ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
//		return certBis;
//	}

	/**
	 * 获取商户证书内容
	 *
	 * @return 商户证书内容
	 */
	@Override
	InputStream getCertStream() {
		// TODO Auto-generated method stub
		return null;
	}

//	/**
//	 * HTTP(S) 连接超时时间，单位毫秒
//	 *
//	 * @return
//	 */
//	public int getHttpConnectTimeoutMs() {
//		return 8000;
//	}
//
//	/**
//	 * HTTP(S) 读数据超时时间，单位毫秒
//	 *
//	 * @return
//	 */
//	public int getHttpReadTimeoutMs() {
//		return 10000;
//	}

	/**
	 * 获取WXPayDomain, 用于多域名容灾自动切换
	 * 
	 * @return
	 */
	@Override
	IWXPayDomain getWXPayDomain() { // 这个方法需要这样实现, 否则无法正常初始化WXPay
		IWXPayDomain iwxPayDomain = new IWXPayDomain() {
			@Override
			public void report(String domain, long elapsedTimeMillis, Exception ex) {

			}

			@Override
			public DomainInfo getDomain(WXPayConfig config) {
				return new DomainInfo(WXPayConstants.DOMAIN_API, true);
			}
		};
		return iwxPayDomain;
	}

}
